/*
* Copyright (c) 206.2，华乘电气科技有限公司
* All rights reserved.
*
* 文件名称：log.cpp
*
* 初始版本：1.0
* 作者：
* 创建日期：2016年2月17日
* 摘要：该文件主要是实现日志模块
*
*/
#include "log.h"
bool Logger::m_bValid = false;//合法
LogUnit* Logger::m_pUnitInfo = NULL;//运行信息
QMutex Logger::m_mutexInfo;
/****************************************/
//构造函数
//输入参数:
//      void
/****************************************/
Logger::Logger( void )
{

}

/****************************************/
//初始化日志模块
//输入参数:
//      path -- 路径
//      uiMaxCount -- 最大记录日志数目
/****************************************/
void Logger::initialize( const QString& path, quint32 uiMaxCount )
{
    if( !m_bValid )
    {
        LogUnit::setPath( path );
        LogUnit::setMaxCount( uiMaxCount );

        m_pUnitInfo = new LogUnit("running");

        m_bValid = true;
    }
    else
    {
        qWarning("Logger::initialize: module already exist.");
    }
}


/****************************************/
//记录运行信息
//输入参数:
//      fmt -- 格式字符串
/****************************************/
void Logger::info(const char *fmt,...)
{
    m_mutexInfo.lock();

    if( ( NULL != fmt ) && ( NULL != m_pUnitInfo ) )
    {
        va_list args;
        va_start(args, fmt);
        va_end(args);

        m_pUnitInfo->write( fmt, args );
    }

    m_mutexInfo.unlock();
}

/****************************************/
//记录运行信息
//输入参数:
//      fmt -- 格式字符串
/****************************************/
void Logger::info( const QString& str )
{
    m_mutexInfo.lock();

    if( (!str.isEmpty() ) && ( NULL != m_pUnitInfo ) )
    {
        m_pUnitInfo->write( str );
    }

    m_mutexInfo.unlock();
}
